package com.zpark.merchant.service.service.impl;

import com.zpark.jushanpay.common.domain.BusinessException;
import com.zpark.jushanpay.common.domain.CommonErrorCode;
import com.zpark.jushanpay.common.util.QiniuUtils;
import com.zpark.merchant.api.service.IFileService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

/**
 * 文件上传业务类
 */
@Service
public class FileServiceImpl implements IFileService {

    // 获取AK
    @Value("${oss.qiniu.accessKey}")
    private String accessKey;
    // 获取SK
    @Value("${oss.qiniu.secretKey}")
    private String secretKey;
    // 获取存储空间名字
    @Value("${oss.qiniu.bucket}")
    private String bucket;
    // 获取CDN域名
    @Value("${oss.qiniu.url}")
    private String url;

    /**
     * 文件上传方法
     * @param data 文件的二进制数据
     * @param fileName 文件的名字
     * @return 文件的访问url
     * @throws BusinessException
     */
    @Override
    public String upload(byte[] data, String fileName) throws BusinessException {
        try {
            // 调用文件上传工具类的上传方法
            String tag = QiniuUtils.upload(accessKey, secretKey, bucket, data, fileName);
            // 返回文件的访问路径
            return url + tag;
        } catch(BusinessException e) {
            throw new BusinessException(CommonErrorCode.E_100106);
        }
    }
}
